/* Style Reset */
input {
	font-family: inherit;
}

/* Font Family */
:lang(en) {
	font-family: serif, serif;
}
:lang(en-x-code) {
	font-family: monospace, monospace;
}
:lang(zh-HK) {
	font-family: serif, serif, HanaMin, serif;
}

/* Whole Page */
body {
	line-height: 1.6;
	padding-top: 1rem;
	padding-left: 10rem;
	padding-right: 10rem;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
}
@media only screen and (max-width: 1192px) {
	body {
		padding-left: 1rem;
		padding-right: 1rem;
	}
}
#root {
	display: contents;
}

/* Headings */
h1 {
	margin: 0.5rem 0;
}

/* Links */
a:link {
	color: #0366d6;
	text-decoration: none;
}
a:link:hover {
	border-bottom: 1px solid;
}

/* Lists */
ul.tips {
	margin: 1rem;
	padding-left: 1.5rem;
	font-size: smaller;
	max-width: 35rem;
}
ul.tips b {
	border-bottom: 1px solid;
}
ul.tips .clickable b:hover {
	color: #737475;
	cursor: pointer;
}

/* Forms */
.query-container {
	margin: 1rem 0;
	display: flex;
	justify-content: center;
	align-items: center;
	font-weight: bold;
	font-size: larger;
}
.query-container input,
.query-container select {
	margin: 0 0.25rem;
	height: 3rem !important;
	padding-top: 0;
	padding-bottom: 0;
}
.query-container .query-select {
	display: flex;
	justify-content: center;
	align-items: center;
}
.query-container span {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 0;
}
.query-container input[type="submit"] {
	width: 5rem;
}
.query-container input[type="text"] {
	min-width: min(16rem, 100vw - 5rem);
	max-width: calc(100vw - 5rem);
}
@media only screen and (max-width: 720px) {
	.query-container span {
		display: none;
	}
	.query-container input,
	.query-container select {
		margin: 0.5rem;
	}
}
@media only screen and (max-width: 600px) {
	.query-container {
		flex-direction: column;
	}
	.query-container span {
		display: flex;
	}
	.query-container input[type="submit"] {
		min-width: min(16rem, 100vw - 5rem);
	}
}

.radio-container {
	display: flex;
	user-select: none;
	align-items: baseline;
}
.radio-container label {
	margin: 0 0.2rem;
}
.radio-container [type="radio"] {
	margin: 0 0.3rem;
}
@media only screen and (max-width: 720px) {
	.radio-container {
		flex-direction: column;
	}
}

.copyButton {
	position: relative;
	margin-left: 0.75rem;
}
.popup {
	position: absolute;
	z-index: 1;
	width: 5rem;
	margin-left: -2.5rem;
	left: 50%;
	bottom: calc(100% + 0.75rem);
	background-color: lightgoldenrodyellow;
	padding: 0.2rem;
	border-radius: 8px;
	opacity: 0;
}
.popup::before {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	margin-left: -0.5rem;
	border-width: 0.5rem;
	border-style: solid;
	border-color: lightgoldenrodyellow transparent transparent transparent;
}
.fade {
	animation: fade 2s ease-in-out forwards;
}
@keyframes fade {
	0%,
	100% {
		opacity: 0;
	}
	10%,
	90% {
		opacity: 1;
	}
}

/* Outputs */
output {
	margin: 1rem 0;
	display: flex;
	flex-direction: column;
	width: 100%;
	max-width: 45rem;
}

#outputArea .line {
	margin: 0;
	border: 0;
	padding: 0;
}
#outputArea .char {
	display: inline-block;
	width: 1rem;
	margin: 0 0.3rem;
	padding: 0;
	border: 0;
	background-color: transparent;
	text-align: center;
	cursor: pointer;
	user-select: text;
}

.charInfo {
	width: 100%;
}
.charInfo .arrow {
	width: 0;
	height: 0;
	padding: 0;
	border-bottom: 0.6rem solid #dadada;
	border-left: 0.6rem solid transparent;
	border-right: 0.6rem solid transparent;
	margin: 0 0.3rem;
	position: relative;
	transition: left 150ms;
}
.infoMain {
	background-color: #f3f3f3;
	min-height: 1rem;
	border: 1px solid #c0c0c0;
	margin: 0 0.3rem 0.5rem;
}
.infoMain .tabs {
	background-color: #dadada;
	margin-bottom: 1.1rem;
}
.infoMain .tab.pure-button {
	padding: 0.4rem 0.65rem;
	background-color: transparent;
	font-weight: bold;
	border: none;
	border-radius: 0;
}
.infoMain .tab.pure-button-active {
	-webkit-box-shadow: none;
	box-shadow: none;
	background-color: #f3f3f3;
	background-image: none;
	cursor: auto;
}
.infoMain .page {
	margin: 0;
	padding: 0 1.5rem 0 2.5rem;
}
.infoMain .links {
	padding: 1rem 0.75rem 0.5rem;
	font-size: 85%;
}

.noResult {
	text-align: center;
	font-size: 1.25rem;
}

#errorArea {
	color: #ff0032;
}

.hidden {
	display: none;
}

.invalid {
	color: #ff0032;
	border-color: #ff0032 !important;
}
